Method for tracking and recording a launch and flight of a high speed vehicle

ABSTRACT

A method for controlling multiple cameras and their lens tracking a vehicle in flight at a test range. The method controls camera lens functions including focus, focal length, and exposure settings, based upon information stored in a track file contained within an Auto Focus and Zoom Controller, in order to obtain optimal recordings of launch events at the test range.

[0001] This Application is a continuation of U.S. patent applicationSer. No. 10/440,645, filed May 13, 2003 and a continuation of U.S.patent application Ser. No. 10/440,646, filed May 13, 2003.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates generally to a method forcontrolling multiple camera lenses. More particularly, the presentinvention relates to a method for use at a test range which controlscamera lens functions in order to obtain optimal recordings of launchevents at the test range.

[0004] 2. Description of the Prior Art

[0005] Presently, the military finds it very difficult, if notimpossible, to monitor and document the flight of a missile, a rocket orother high speed vehicle during the testing of the high speed vehicle ata test range. To monitor and document a test flight, an operator isrequired to adjust the focus, field of view, and exposure for an imageduring range operations. To document a missile or rocket launch thefocus, field of view, and exposure is set at the beginning of the launchto record the launch of high speed vehicle from the launch pad.

[0006] As the vehicle moves further away from the cameras the focus,field of view, and exposure settings of their lenses are adjusted toprovide as accurate of a recording as possible given the constraints ofan operator adjusting each of these camera lens functions.

[0007] In one configuration a camera is mounted on a range telescopewhich uses a focus table requiring the operator to adjust calibrationsettings to keep the high speed vehicle in focus. While the focus tableis computer controlled, range input is not provided to the computer,which is information the computer needs to adjust camera focus.

[0008] In a second configuration, a camera is mounted to a lens systemcapable of manual and computer control. As computer control is notavailable, manual control of the lens system is necessary to keep thehigh speed vehicle in focus and with the desired focal length andexposure settings. This problem is compounded when attempting to adjustmore than one camera lens system at a time.

SUMMARY OF THE INVENTION

[0009] The method of the present invention employees an Auto Focus andZoom Controller is a camera lens control system developed to aid indocumenting range operations during testing of high speed vehicles, suchas a missile in flight. The Auto Focus and Zoom Controller is designedto control camera lens functions (focus, focal length, and exposuresettings), based upon information contained in a track file, in order toobtain optimum recordings of launch and flight events.

[0010] The Auto Focus and Zoom Controller is designed to interface toand control as many as three types of camera lens systemssimultaneously. It is capable of controlling the focus of two FocusTables, and the focus, zoom, and iris of two lens systems. The focus,zoom, and iris settings are based upon a predicted target flight path,and a desired field-of-view and exposure data contained in the trackfile. The track file is stored on a PC memory card.

[0011] Activation of the track file data as well as a manual controlcapability of lens settings is provided for via a USB (Universal SerialBus) Game Pad. Remote activation of the track file data can alsoprovided by a remotely located switch. A switch pad was also developedto control the lens functions. A video overlay of the focus, zoom, andiris settings as well as the controller's status is provided to documentthe settings of both lens systems. The video overlay is also capable ofdisplaying the status of the Focus Table.

[0012] Operation of the Auto Focus and Zoom Controller begins uponapplication of power to the controller. Once the controller hascompleted its power-up initialization it will proceed to a standby modewaiting for an activate track signal or a manual control signal. Duringinitialization the controller will attempt to access a lensconfiguration file (config.txt) and open the track file on the PC MemoryCard. If the track file is found, the controller will set the lenses totheir initial settings as indicated in the file. If the lensconfiguration or track file are not found or no PC Memory Card isinserted into the controller, the controller will set the lenses tofocus at infinity with their widest field-of-view and greatest f-stopfor camera protection and then wait for manual control.

[0013] The lens configuration file provides display, data file, and lenscontrol and lens calibration information to the Auto Focus and ZoomController. The display information indicates what is to appear on theoverlays and what the color of those overlays should be. The data fileinformation contains the name of the track file and the lens controlinformation indicating which lens systems are connected. The lenscalibration information contains calibration data for visible or nearinfrared light generation.

[0014] The lens configuration file and track file data are set up usinga Microsoft Excel file containing a programmed macro functions to assistin their generation. The resulting configuration file data is saved as atext file which is config.txt. The resulting track file data is saved asa tab delimited text file. The lens configuration file and the trackfile are the only two files on the PC Memory Card that are required bythe Auto Focus and Zoom Controller.

[0015] The Auto Focus and Zoom Controller includes device driversoftware which is DOS compatible. The device driver software allows forcommunications between the USB game pad and the Auto Focus and ZoomController via the Universal Serial Bus. The implementation standardused for the Universal Serial Bus is the Universal Host ControllerInterface (UHCI). The device driver software implements the UniversalHost Controller Interface which defines how the USB controller talks tothe host computer and its operating system which is Microsoft's DOSVersion 3.1 or better.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016]FIG. 1 is a block diagram which illustrates the Auto Focus andZoom Controller interfaced to video and electronic devices of a rangeflight recording system;

[0017]FIG. 2 illustrates the front panel for the Auto Focus and ZoomController of FIG. 1;

[0018]FIGS. 3 and 4 illustrate the USB game pad used for operatorcontrol of the Auto Focus and Zoom Controller of FIG. 1;

[0019]FIG. 5 illustrates the switch pad circuitry used for operatorcontrol of the Auto Focus and Zoom Controller of FIG. 1;

[0020]FIG. 6 illustrates the allocated memory for the USB game pad wheninterfaced to the Auto Focus and Zoom Controller via a Universal HostController Interface;

[0021]FIGS. 7A-7D illustrates a flow chart for the Auto Focus/ZoomController main program which controls the operation of the systemdepicted in FIG. 1;

[0022]FIG. 8 illustrates a flow chart for the initialize subroutine forthe program of FIGS. 7A-7D; and

[0023]FIGS. 9-24 illustrate flow charts for the USB device driversoftware which allows the USB game pad to communicate with the AutoFocus and Zoom Controller comprising the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0024] Referring first to FIGS. 1 and 2, the Auto Focus and ZoomController 20 comprising the present invention is interfaced to videoand electronic devices of a range flight recording system 22. Three lenssystems of the range flight recording system 22 are connected to AutoFocus and Zoom Controller 20. One of the three lens systems comprises apair of focus tables 30 and 32 which are controlled by a focus tablecomputer 24 connected to controller 20 via a discrete interface 28.Connected to focus table computer 24 is focus table 30 and focus table32. Focus tables 30 and 32 are manufactured by Photo-Sonics Incorporatedof Burbank, Calif.

[0025] Another of the three second lens system comprises an optical lenssystem 34 and a camera 50. The optical lens system 34 is mounted onbayonet mount 33 on camera 50. The optical lens system 34 is a FujinonInc. A36X14.5ERD lens controlled via an RS-232 interface 36 connectingoptical lens system 34 to a communication port 37 for Auto Focus andZoom Controller 20.

[0026] The last of the three lens system comprises an optical lenssystem 38 and a camera 52 which are mounted in a camera housing 35. Theoptical lens system 38 is a DOS-Z300-820/6400AP lens manufactured byDavro Optical Systems Inc., Lansdale, Pa., which is controlled via anRS-422 interface 40 connecting optical lens system 38 to a communicationport 41 for Auto Focus and Zoom Controller 20.

[0027] Both communications ports 37 and 41 of Auto Focus and ZoomController 20 can accommodate an RS-232 interface, however, an externalRS-232 to RS-422 converter is required to accommodate an RS-422interface.

[0028] The data for automatic control of the lens systems 34 and 38 iscontained in a control storage module 42 within Auto Focus and ZoomController 20. Control storage module 42 is a PCMCIA PC memory cardwhich includes a configuration file and a track file. The configurationfile contains information indicating which lens systems are connected tothe Auto Focus and Zoom Controller 20, the lens system calibrationinformation, the name of the track file and what information to displayas an overlay on a video if video is used. The track file contains time,range, focal length, and exposure settings for each of the lens systems34 and 38 connected to Auto Focus and Zoom Controller 20.

[0029] Auto Focus and Zoom Controller 20 also has a video overlaycapability to document range events. Relative time from the start of anevent, such as a missile launch, lens settings and control informationcan be displayed independently on the images obtained from lens system34 and lens system 38.

[0030] The Auto Focus and Zoom Controller 20 has an operator manualcontrol 44 connected thereto which may be either a Game Pad 70 which isillustrated in FIGS. 3 and 4 or a switch pad 100 which is illustrated inFIG. 5. Game pad 70 provides a user with a manual control device whichallows the user to start, pause and reset the track file controlfunction as well as modify the track files settings and independentlycontrol any of lens systems' settings. Game pad 70 also allows a user tore-initialize the interfaces and reset the range flight recording system22.

[0031] Activation of track file data as well as a manual controlcapability of track file settings is provided by commercially availableGame Pad 70. Remote activation of the track file data can also providedby a remotely located switch. The circuitry for switch pad 100 was alsodeveloped to control lens functions; however, the Game Pad 70 iscurrently in use since its control capabilities exceed the controlcapabilities of switch pad 100.

[0032] A video overlay of the focus, zoom, and iris settings for thelens systems 34 and 38 as well as the controller's status is provided todocument the settings of lens systems 34 and 38. This video overlay alsoincludes the capability of displaying the status of the Focus Tables 30and 32.

[0033] Operation of the Auto Focus and Zoom Controller 20 begins uponapplication of power to controller 20. Once the controller 20 hascompleted its power-up initialization controller 20 will enter a standbymode waiting for an activate track signal or a manual control signal.During initialization controller 20 will attempt to access the lensconfiguration file (config.txt) and open the indicated or predictedtrack file on PC Memory Card 42. If the track file is found, controller20 will set the lenses to the initial settings as indicated in the file.

[0034] If the lens configuration or track files are not found or a PCMemory Card is not inserted into controller 20, controller 20 will setthe lenses to focus at infinity with their widest field-of-view andgreatest f-stop. This provides for camera protection with controller 20waiting for manual control via Game Pad 70.

[0035] The lens configuration file (config.txt) provides display, datafile, lens control, and lens calibration information to Auto Focus andZoom Controller 20. The display information indicates what is to appearon the overlays and what the color of the overlays should be. The datafile information contains the name of the track file and the lenscontrol information indicates which lens systems are connected. The lenscalibration information contains calibration data for visible or nearinfrared light operation. The lens configuration file and track filedata are set up using a Microsoft Excel file containing programmed macrofunctions to assist in their generation. The resulting configurationfile data is saved as a text file (config.txt). The resulting track filedata is saved as a tab delimited text file. The lens configuration fileand the track file are the only two files on the PC Memory card 42.

[0036] The lens configuration file (config.txt) and the track file arestored on PC Memory Card 42 (FIG. 1).

[0037] Referring to FIGS. 1, 2, 3, 4 and 5, the Auto Focus and ZoomController 20 operates on 120 VAC power. It is connected to at least oneLens System or Focus Table and activated with Game Pad 70, or a SwitchPad 100, or a Remote Switch.

[0038] The power cable connects from a standard three prong AC outlet toconnector J1 located on the front panel 60 for controller 20. The lenssystems 34 and 38 connect to either connector J4 or connector J5 locatedon front panel 60. The Focus Table connection, made via connector J3,connects the Auto Focus and Zoom Controller 20 to the range data inputfor Focus Table Computer 24. The Focus Table Computer 24, in turn,controls up to two Focus Tables 30 and 32. The Universal Serial Bus(USB) Game Pad 70 is connected to the USB1 or the USB2 connector onfront panel 60 or a Remote Switch or Switch Pad 100 connected to J2 canbe used to activate the track file. The USB Game Pad 70 and Switch Pad100 also provide an operator with direct manual control capability ofthe Lens Systems and Focus Table.

[0039] The front panel 60 for controller 20 also includes optionalconnections. The optional overlay of system and lens status is providedby Video 1 and Video 2 overlays. The status for the Lens Systemconnected to J4 is provided by the Video 1 overlay. To obtain thisoverlay connect the camera 50 video output to J6 (Video 1 In) anddisplay the result from J7 (Video 1 Out) on monitor 46. Similarconnections are made to display the status of the Lens System 38connected to J5. Camera 52 video output is connected to J8 (Video 2 In)and the result from J9 (Video 2 Out) is displayed on a monitor. Thevideo overlays which appear on monitors 46 and 48 can also be recordedto document the Lens System and Focus Table settings during operation.

[0040] The game pad 70 is a commercially available USB Game Pad whichallows an operator full control of all Lens System and Focus Tablefunctions as well as control of all operational and display functions.The device driver interface for the game pad 70 was developed for theThrustmaster Firestorm Dual Power USB Game Pad (FIG. 3 and FIG. 4),which was chosen for dual analog joysticks and a directional pad as wellas the number of buttons available for different functions. The game padis manufactured by Thrustmaster, a division of the Guillemot Corporationof France.

[0041] The USB Game Pad can be connected to either one of the USB portsUSB1 or USB2 on the front panel 60 of controller 20. An extension cablecan be used to extend the reach of the game pad an additional 15 feet.

[0042] The front panel 60 has a system LED 62, a Focus LED 64 and a ZoomLED 66. LEDs 62, 64 and 66 are three two-color light emitting diodes(LED) that comprise the system status display LEDs 54 for Auto Focus andZoom Controller 20. The SYSTEM LED 62 operates in the following manner:

[0043] Solid Green indicates that the Auto Focus and Zoom Controller 20is functioning normally. The configuration file (config.txt) and thetrack file have been detected and successfully read, a USB Game Pad orSwitch Pad or Remote Switch, was detected and all Lens Systems and theFocus Tables are initialized and functioning as specified.

[0044] Blinking Green indicates manual operation capability only. A USBGame Pad or Switch Pad was detected; however, no PC Memory Card wasdetected or no configuration file or track file was read from the PCMemory Card.

[0045] Blinking Red indicates the system is partially functioning. A USBGame Pad or Switch Pad or Remote Switch was detected, however, at leastone Lens System or Focus Table interface indicated in the configurationfile did not initialize and at least one Lens System or Focus Tableinterface is properly functioning.

[0046] Solid Red indicates the system is not operational. Either a USBGame Pad or Switch Pad or Remote Switch were not detected or no LensSystems or Focus Table interface is functioning.

[0047] The FOCUS LED 64 operates in the following manner. Greenindicates the focus distance of a Lens System or the Focus Table isincreasing. Red indicates the focus distance of a Lens System or theFocus Table is decreasing. When there is no color indicates, there is nochange in the setting of any Lens System or Focus Table.

[0048] The ZOOM LED 66 operates in the following manner. Green indicatesthe focal length of a Lens System is increasing. Red indicates the focallength of a Lens System is decreasing. When there is no color indicatesthere is no change in the setting of any Lens System.

[0049] The only Focus Table function is Focus control. The Lens Systemfunctions are Focus, Zoom (focal length), and Iris control. Thesefunctions are controlled using the focus and zoom joysticks 74 and 76,respectively and the iris directional pad 72 shown in FIG. 3 and enabledusing the Focus Table Select button/switch 78, the Lens1 Selectbutton/switch 80 and the Lens2 Select button/switch 82 shown in FIG. 4.To increase the focus distance or focal length (zoom into the object) ofthe lens or increase the attenuation of light (f-stop) through the lensthe joysticks 74 and 76 or directional pad 72 are pushed away or forwardfrom the operator.

[0050] All three functions may be activated at the same time for anycombination of Lens System and Focus Table. It should be noted that theFocus Table has no focal length or iris adjustment.

[0051] The following are illustrative of the operation of the Auto Focusand Zoom Controller:

[0052] (1) The operator increases the focus distance of the Focus Tableby pressing the Focus Table Select switch 78 with the index finger ofthe left hand and pushing the Focus joystick 74 forward with the thumbof the left hand.

[0053] (2) The operator decreases the focal length (zoom away from theobject) of Lens System 34 by pressing the Lens1 Select switch 80 withthe middle finger of the left hand and pulling the Zoom joystick 76 backwith the thumb of the right hand.

[0054] (3) The operator increases the f-stop and reduces the amount oflight passing through Lens System 38 by pressing the Lens2 Select switch82 with the middle finger of the right hand and press the directionalpad 72 forward with the thumb of the left hand.

[0055] The operational functions provided by game pad 70 include StartTrack, Stop Track, Reset Track, and Clear Offsets. Pressing the StartTrack, Stop Track, Reset Track, and Clear Offsets buttons 84, 86, 88 and90, respectively, controls these functions.

[0056] The Start Track button 84 is pressed to start the automaticcontrol of the Lens Systems 34 and 38 and Focus Tables 30 and 32 basedupon the records contained in the track file. When the Stop Track button86 is pressed the track file control will pause keeping the lens controlfunctions and the displayed time set to the values contained in the lastrecord read from the track file. Pressing the Start Track button 84continues automatic control.

[0057] Pressing the Reset Track button 88 can restart automatic controlof the Lens Systems 34 and 38 and Focus Tables 30 and 32. If automaticcontrol had been paused, pressing the Reset Track button 88 will resetthe pointers in the track file to the first record in the file andmaintain the pause until activated with the Start Track button 84. Ifthe automatic control had been running, pressing the Reset Track button88 will reset the pointers in the file to the first record in the fileand then continue automatic control.

[0058] The operator may at any time enter offsets to the values set bythe track file by activating the Focus, Zoom, and Iris controls, i.e.joysticks and directional pad 72, 74 and 76 on game pad 70. Pressing theClear Offsets button 90 clears these offsets. The Lens Systems and FocusTable settings will then revert back to the values indicated in thetrack file.

[0059] The only display function is a Toggle Overlay function and isactivated by pressing the Toggle Overlay button 92 shown in FIG. 3. Thevideo overlays will initially be displayed as indicted in the lensconfiguration file. These overlays will default to white if no lensconfiguration file or PC Memory Card 42 is found.

[0060] Pressing the Toggle Overlay button 92 will sequence the videooverlays from white to black to none (no overlay) and back to whiteagain. This function gives the operator the capability to set theoverlay for the best viewing against the background in real time.

[0061] There are two miscellaneous functions available with Auto Focusand Zoom Controller 20. These are “Re-initialize” and “Reset” functionswhich are not used during normal operations. To prevent their accidentalactivation of the “Re-initialize” and “Reset” functions the operator isrequired to press more than one button simultaneously.

[0062] To re-initialize all the interfaces the operator presses andreleases the Toggle Overlay button 92 while pressing the Clear Offsetsbutton 90. Upon releasing the Clear Offsets button 90 and the ToggleOverlay button 92, the Auto Focus and Zoom Controller and all connectedLens Systems will be re-initialized.

[0063] To reset the entire system the operator presses and releases theToggle Overlay button 92 while the Clear Offsets button 90 and the ResetTrack button 88 are pressed. It will take approximately 30 seconds forthe system to resume lens control.

[0064] The Auto Focus and Zoom Controller 20 operates in a MicrosoftDisk Operating System (MS-DOS) environment using MS-DOS version 6.22.The operation of the system requires two sets of device drivers thatprovide the control pad and PCMCIA interfaces. The device drivers areinstalled during the power-up process by the system configuration file(config.sys). The “autoexec.bat” file invokes the Auto Focus and ZoomController program (lensctlr.exe).

[0065] The systems configuration (config.sys) is an operating systemsetup file which establishes device drivers and memory usage. Theautoexec.bat file establishes pointers and the program to be executed.The Controller 20 includes a C drive for storage of the autoexec.bat andconfig.sys files

[0066] The listing for the systems configuration file is set forth asfollows: DEVICE=C:\DOS\HIMEM.SYS DOS=HIGH,UMB BUFFERS=15,0 FILES=30 REM***** Control Pad Device Driver ***** DEVICE=C:\CTRL_PAD.SYS REM *****End of Control Pad Device Driver ***** REM ***** PCMCIA Device Drivers***** DEVICE=C:\CARDWARE\DPMS.EXE MEM=XMS DEVICEHIGH=C:\CARDWARE\PCC.EXE/SC:off DEVICE=C:\CARDWARE\PCRM.EXE /AUTODETECTDEVICEHIGH=C:\CARDWARE\SSPCIC.EXE /EC:auto /II:offDEVICEHIGH=C:\CARDWARE\PCENABLE.EXE DEVICEHIGH=C:\CARDWARE\PCATA.EXEDEVICEHIGH=C:\CARDWARE\PCSRAM.EXE DEVICEHIGH=C:\CARDWARE\PCFLASH.EXEDEVICEHIGH=C:\CARDWARE\PCDISK.EXE REM ***** End of PCMCIA Device Drivers*****

[0067] The listing for the autoexec.bat file is set forth as follows:@ECHO OFF PROMPT $p$g PATH C:\DOS;C:\BATCH SET TEMP=C:\TEMP REM Insertedfor Auto Focus/Zoom Controller *** Start PATH C:\LensCtlr,%PATH% REMInserted for Auto Focus/Zoom Controller *** End REM Inserted by CARDWARESetup *** Start PATH C:\CARDWARE,%PATH% REM Inserted by CARDWARE Setup*** End REM Choice to continue or abort to DOS CHOICE /c:ca /t:c,1“Continue or Abort” If errorlevel 2 goto EXIT LensCtlr :EXIT

[0068] The lens configuration file contains configuration categories andparameters that describe the interfaces that are supported by the AutoFocus and Zoom Controller 20. The lens configuration file is setupduring the process of establishing the track file. This is done withprogrammed macro functions embedded in a Microsoft Excel file.

[0069] There is a displays category in the lens configuration file whichprovides the initial overlay color for the displays. The displays forrange flight recording system 22 are a video 1 monitor and recorder 46and a video 2 monitor and recorder 48 which are connected to Auto Focusand Zoom Controller 20. The initial overlay color can be set to white,black or none (no overlay) to support various background anddocumentation requirements. A console display is set to ON, fordebugging, or OFF, for normal operation. A Focus Table overlay is set toON, to show on all overlays, or OFF, to display only Lens System status.

[0070] There is a data files category in the lens configuration file.The track file is the only data file that is currently being supportedin the lens configuration file. This entry identifies the file name ofthe track file that the Auto Focus and Zoom Controller 20 uses duringnormal operation and can be set to NO for manual operation only. Thetrack file name is restricted to eight ASCII characters or less to makeit DOS compatible and uses a “txt” extension. If no entry is found thedefault track.txt is used.

[0071] There is a lens control category in the lens configuration file.This category contains a list of the available lens interfaces and theirconfiguration. A Focus Table parameter is set to YES to enable FocusTable control and set to NO to disable that control (no Focus Tableattached). The Lens #1 Type and/or Lens #2 Type can be set to NO todisable control through that interface or to FUJINON or DAVRO toestablish a connection with lens systems 34 and 38.

[0072] There is a lens calibration category in the lens configurationfile. This category contains calibration data for Lens #1 and Lens #2 toaccount for differences between lenses and to support differences infocus for near infrared as well as visible light operation.

[0073] A sample lens configuration file is set forth as follows:[DISPLAYS] COLOR=WHITE CONSOLE=NO FOCUS_TABLE_OVERLAY=NO [DATA_FILES]TRACK_FILE=track.txt [LENS_CONTROL] FOCUS_TABLE=NO LENS1_TYPE=FUJINONLENS2_TYPE=DAVRO [LENS_CSLIBRATION] LENS1_CAL=0XFFFF-0X0679,0XFFEF-0X0018,0XC963-0X2BCD LENS2_CAL=VISIBLE

[0074] The track file contains a list of tab-delimited recordsdescribing the path the high speed vehicle or object will travel duringflight as well as Lens System settings needed to document the high speedvehicle during the operation. This file also contains a heading with alabel for each element in the record. The elements contained in eachrecord are time in seconds, range in feet, azimuth and elevation indegrees, focal length setting for Lens system 34 in inches, iris settingfor Lens system 34 as an f-stop, focal length setting for Lens system 38in inches, and iris setting for Lens system 38 as an f-stop.

[0075] The track file data is generated using a Microsoft Excel file setup for this purpose. This Excel file is defined as CameraTrackFile.xls,it contains macros that are used to facilitate the generation of thecamera lens data as well as the generation of the lens configurationfile data, and must be enabled when opening the file. The followingsteps are required to generate track file data. A laptop or otherpersonal computer may be used to generate track file data.

[0076] (1). The user copies the object's or vehicle's track profile dataprovided by range operations to columns A through D of a Range_Datasheet. The user can not modify the Range_Data sheet by adding ordeleting any rows between and including rows 1 and 2 of this sheet. Ifthe user modifies the Range_Data sheet the equations on theTracking_Data sheet will be altered.

[0077] (2). The user enters the data describing the camera setup forlens system 34 and lens system 38 tables on a Camera_Data sheet. Theuser is provided plots of lens focal length vs. distance and image sizevs. distance to aid in the selection. Table I sets forth lens system 34table data. TABLE I Lens #1 Parameters Selection Lens Fujinon S/N-021033Sensor ½″CCD Object Length (ft.) 80 Image Size (% FOV) 80 InitialExposure (f#) 16 Near IR (Yes/No) No

[0078] (a). The user selects Lens and Sensor parameters selected byentering a reference to a cell in the appropriate table containing thedata. The Lens and Sensor selections are made from the Lens Focal Lengthdata of Table II and the Sensor Format of Table III respectively. TABLEII Lens Focal Length (inches) and Exposure Range (f#) Lens Min. FL Max.FL Min f# Max f# Fujinon S/N-020957 0.57 20.47 2.7 20.0 FujinonS/N-02/033 0.57 20.47 2.7 20.0 Fujinon S/N-03/066 0.57 20.47 2.7 20.0Fujinon S/N-02/068 0.57 20.47 2.7 20.0 Davro S/N-454 32.28 251.97 3.520.98 Davro S/N-455 32.28 251.97 3.5 20.98 Davro S/N-456 32.28 251.973.5 20.98 Fujinon S/N-457 32.38 251.97 3.5 20.98

[0079] TABLE III Sensor Format Sensor H (inches) V (inches) 16 mm 0.4100.296 35 mm 0.995 0.745 ⅓″CCD 0.167 0.125 ½″CCD 0.251 0.189 ⅔″CCD 0.3330.250 1″CCD 0.502 0.378 V5 0.650 0.650 V7 0.520 0.693

[0080] (b). The user enters object length in feet and the desired imagesize as a percentage of the field-of-view.

[0081] (c). The user enter the Initial Exposure as an equivalent f-stopnumber referring to the lens exposure range for acceptable f-stopvalues. If a value outside the range is entered by the user Auto Focusand Zoom Controller 20 will use the nearest value within the range.

[0082] (3). The user points and clicks on a Generate File button on thelaptop computer screen to generate and save the new tracking and lensconfiguration data. The tracking data is generated on the Tracking_Datasheet and the lens configuration data is generated on the Config_Datasheet. A “Save As” box is opened to save the tracking data as a text(tab delimited) file. The configuration data is automatically saved as atext file (config.txt. The program is exited after the files are saved.The track file name must be restricted to eight ASCII characters or less(DOS compatible) and the user is required to use a “txt” extension. Thisfacilitates examining the file with a text editor, such as Microsoft'sNotepad, to verify the validity of the data.

[0083] Lens system 34 which is the A36X14.5ERD Fujinon lens utilizes hasa standard RS-232C interface 36. Lens system 34 communicates using 8-bitbytes with no parity check and one stop bit at 38.4 Kbps. The data sentto and received from the lens is binary, non-ASCII, data constructed inblocks not exceeding 18 bytes in length. The general form of thecommunications is a command sent to the lens system 34 followed by aresponse from the lens system 34. The command interval is less than 5seconds to avoid a lens disconnect. The Auto Focus and Zoom Controller20 currently uses individual commands to control the focus, focallength, and iris settings of the lens. The data contained in thecommands, which set the various lens functions, is 2-bytes in length anddoes not represent a numerical value for the lens functions. The datarepresents a position on a servo that sets the lens function. Thefollowing table illustrates sample commands and responses for thefunctions of lens system 34. TABLE I SAMPLE COMMANDS AND RESPONSESFunction Command/Request Response General Command FormLFDDDDDDDDDDDDDDDCC LFC L=Data Length Byte L=0 F=Function ByteF=Function Byte D=Data Byte C=Checksum Byte C=Checksum Byte GeneralRequest Form LFC LFDDDDDDDDDDDDDDDC L=0 L=Data Length Byte F=FunctionByte F=Function Byte C=Checksum Byte D=Data Byte C=Checksum Byte Connect0x00 0x01 0xFF 0x00 0x01 0xFF Set Focus 0x02 0x22 0xFE 0x00 0x22 0xDE0xBF 0x1F Request Focus 0x00 0x32 0xCE 0x02 0x32 0xFE 0xBC 0x12 SetFocal Length 0x02 0x21 0xFD 0x00 0x21 0xDF 0xE6 0xFA Request FocalLength 0x00 0x31 0xCF 0x02 0x31 0xFD 0x9B 0x35 Set Iris 0x02 0x20 0x3E0x00 0x20 0xE0 0x27 0x79 Request Iris 0x00 0x30 0xD0 0x02 0x30 0x54 0xBE0xBC

[0084] Mathematical functions were developed to translate the receiveddata from the A36X14.5ERD Fujinon lens, i.e. lens system 34 to thefocus, focal length, and iris settings on the lens housing of lenssystem 34. These equations along with their inverse are used to displayand control the A36X14.5ERD Fujinon lens settings in a readable form.

[0085] The focus function is hyperbolic and is represented by thefollowing equation:

w(x)=A+B/(C−x)   (1)

Where:

A=w0−B/(C−x0)

B=2*x8

C=x8−347

x0=1687

w0=2.2

x8=65535

[0086] Due to the hyperbolic nature of the focus function, the receiveddata from the lens system 34 for focal lengths larger than 20 feet issensitive to least significant bit noise from the servo electronics. Asa result the Auto Focus and zoom Controller 20 is programmed to displaythe value sent to the lens system 34, not the value received from thelens. It is therefore possible that the displayed value will notrepresent the actual value the lens system 34 is set to, especially ifthe focus control servo for lens system 34 is disengaged.

[0087] The focal length function is exponential and is represented bythe following equation:

z(x)=D+E*exp(F*x)   (2)

Where:

D=z(0)−E*exp(F*x0)

E=z6/exp(F*x6)

F=5.18/x6

x0=24

z0=14.5

x6=65519

z6=520

[0088] This focal length function is much less sensitive to leastsignificant bit noise coming from the servo electronics than the focusfunction. As a result the Auto Focus and Zoom Controller 34 isprogrammed to display the value received from the lens system 34. Evenif the servo is disengaged the display will always show the actual focallength of lens system 34.

[0089] The iris or f-stop function is based on the relationshipf=({square root}2)^(N) where “N” is a measure of the attenuation of thelight passing through the lens. The iris or f-stop function for thislens is as follows:

f(x)=({square root}2)^(N)

Where:

N=3+5*(x5−x)/(x5−x0)

x0=11181

x5=51891

[0090] This iris or f-stop function is not sensitive to leastsignificant bit noise coming from the servo electronics for lens system34. Accordingly, the Auto Focus and Zoom Controller 20 is programmed todisplay the f-stop setting value received from the lens system 34. Evenif the servo for lens system 34 is disengaged the display will alwaysshow the actual f-stop setting for lens system 34.

[0091] The interfaces 36 and 40 are modified with the Data TerminalReady pin connected to +12 VDC through a 330 ohms resistor. Thismodification provides enough current driving capability to power anRS-232 to RS-422 converter and to interface to a terminated data line asrequired for the Davro lens. The RS-232 to RS-422 converter used in theinterface 40 is also modified with it's receive lines terminated in 130ohms to accomodate the Davro lens.

[0092] The DOS-Z00-820/6400-AP Davro lens, which is lens system 38, usesa four wire RS-422 interface terminated in 130 ohms. The communicationsbetween lens system 38 and Auto Focus and Zoom Controller 20 via RS-422interface 40 is implemented using 8-bit ASCII characters with no paritycheck and one stop bit at 19.2 Kbps. The general form of thecommunications is a command sent to the lens system 40 followed by aresponse. The typical response time is 50 milliseconds and may be aslong as 100 milliseconds to 400 milliseconds depending on the commandsent by the Auto Focus and Zoom Controller 20.

[0093] The RS-232 to RS-422 converter used in this interface is modifiedwith it's receive lines terminated in 130 ohms to meet the Davro lensrequirement.

[0094] The data contained in the commands resides in an 8-byte datafield. The specific format of the data varies according to the requiredcommand mnemonics. All numeric data is left justified within the datafield and may be padded with leading zeros or trailing spaces. Thevalues represented in the data field correspond to the actual values ofthat specific function.

[0095] Sample commands and responses for lens system 38. i.e. Davrolens, are set forth in the following table: TABLE II SAMPLE COMMANDS ANDRESPONSES Function Command/Request Response General !ccddddddddss<or>@SSpzfwxyimss<cr> Command Form !=Lead in character @=Response lead incc=Command mnemonic character d=Data character SS=Status packetidentifier ss=ASCII checksum p=Previous packet status <cr>=Carriagereturn z=Zoom module character status f=Focus module status w=Not used(set to ‘X′) x=Zoom module limit status y=Focus module limit statusi=Iris control source m=Memory status ss=ASCII checksum <cr>=Carriagereturn character Set Focus !FD0000113333<cr> @SSARBXWFMP4D<cr> RequestFocus !TDD DD<cr> @FD 349320.4D<cr> Set Focal Length !FL000002523C<cr>@SSARRXRRMP64<cr> Request Focal !TDL E5<cr> @FL o251.5 3D<cr> LengthOpen Iris !IRMO 18<cr> @SSARRXRRMP4B<cr> Close Iris !IRMC 0C<cr>@SSARRXRRMP64<cr> Halt Iris !IRMH 11<cr> @SSARRXRRMP4B<cr> Request Iris!ER2 CA<cr> @XD20014...5D<cr> Value

[0096] The DOS-Z00-820/6400-AP lens requires no calibration of the focusand focal length functions. The focus and focal length functions arecalibrated at the factory and adjust to the values specified in thecommands. The iris function requires calibration.

[0097] The iris function is implemented with a neutral density filterthat is commanded to allow more or less light through the lens, that isthe iris is opened or closed. In effect, this is commanding the lens togo to a lower or higher f-stop. The position of the filter is measuredwith a potentiometer and converted to a digital value by an analog todigital (A/D) converter. The neutral density filter attenuates theamount of light passing through the lens throughout the equivalentf-stop range specified for the lens.

[0098] The system directory structure and its contents for controller 20include the following directories.

[0099] There is a Root Directory (C:\) which includes the followingvisible (not hidden) contents: DOS <DIR> CARDWARE <DIR> LENSCTLR <DIR>ROOT <DIR> BACKUP <DIR> BATCH <DIR> TEMP <DIR> COMMAND.COM MS-DOScommand interpreter CONFIG.SYS System configuration file AUTOEXEC.BATSystem auto-execution file CTRL_PAD.SYS Device driver for the controlpad (USB Game Pad and Switch Pad) WARMBOOT.COM Program to re-boot system(USB Game Pad function)

[0100] There is an MS-DOS directory which contains 18 files of whichonly 2 are used during normal operation:

[0101] HIMEM.SYS—Device driver that enables access to high memory(invoked in config.sys)

[0102] CHOICE.COM—Program that provides an execution choice (invoked inautoexec.bat)

[0103] There is a CardWare directory which contains 31 files, whichconsist of device drivers, programs, and tables that are used to accessall types of PCMCIA PC Cards, that is memory card 42.

[0104] There is a program directory which contains one file. This is theAuto Focus/Zoom Controller program (lensctlr.exe).

[0105] There is a root backup directory which contains a copy of all thevisible (not hidden) files. These file are needed in the event a file inthe root directory is inadvertently deleted or corrupted. Copying thefaulty file back into the root directory can be used to restore the file

[0106] There is a program backup directory which contains a copy of theAuto Focus/Zoom Controller operating program for controller 20. Theoperating program can be restored from this directory if it isinadvertently deleted.

[0107] There is a temporary batch program directory which is not used atthis time. All batch programs are to be located in this directory.

[0108] There is a temporary file directory which is not used at thistime. All temporary files are to be located in this directory.

[0109] Referring to FIGS. 1 and 5, switch pad 100 was developed as analternative to the USB Game Pad 70 illustrated in FIGS. 3 and 4. Theswitch pad contains controls for a subset of functions available withthe USB Game Pad. These are Lens System and Focus Table functions aswell as operational functions. The Switch Pad 100 is connected to J2 onthe front panel 60. Game Pad 70 is plugged into USB1 or USB2 on thefront panel of the Auto Focus and Zoom Controller 20.

[0110] The “CTRL_PAD.SYS” device driver within the systems configurationfile provides the Switch Pad interface as well as the USB Game Padinterface. This is a discrete interface that makes use of a parallelport LPT1 which is partially wired to connector P2. The parallel port isconfigured in the BIOS to operate in SPP mode so the status and controllines can be used as inputs and the data lines used as outputs.

[0111] The switch positions are sensed using the Data0 and Data1 linesas strobes and testing for changes in the status and control inputs thatcorrespond to a particular switch (FIG. 5). The strobes are normallyhigh and provide a voltage to the input lines through a diode and 5K-ohm resistor when the switches are open. When a switch closes thestrobe voltage appears directly on the input lines. Pulsing a strobe lowwill pull any input lines low that are connected to the strobe through aclosed switch.

[0112] As depicted in FIG. 5, switch pad 100 has a start track switch102, a lens1 switch 104 and a lens2 switch 106 which are push buttonswitches. Switch pad 100 also has a focus switch 108, a zoom switch 110and an iris switch 112 which are toggle switches. The Focus, Zoom (focallength), and Iris functions are controlled with the toggle switches 108,110 and 112, respectively, as indicated in FIG. 5. Activating anycombination of these switches will simultaneously control the Focus,Zoom, and Iris functions. To independently control the Lens System 34,the Lens1 push button switch 104 must be pressed while the toggle switchis activated. To control Lens System 34 and Lens System 38 (not theFocus Table) both Lens1 and Lens2 push button switches 108 and 10 mustbe pressed while the toggle switch is activated. In a manner similar tothe USB Game Pad 70 to increase the focus distance or focal length (zoominto the object) of the lens or increase the attenuation of light(f-stop) through the lens the toggle switches are pushed away (forward)from the operator.

[0113] The operational functions are Start Track, Stop Track, and ClearOffsets. Stop Track and Clear Offsets are multi-button functions. Aswith the USB Game Pad 70, the Start Track button 102 is pressed by theoperator to start the automatic control of the Lens Systems and FocusTable based upon the records contained in the track file.

[0114] To implement the Stop Track function the operator presses andreleases the Start Track button 102 while the Lens2 Select button 106 ispressed by the operator. The lens control functions and displayed timewill remain set to the values last read from the track file.

[0115] Any manual control inputs to the lens control functions can becleared by pressing and releasing the Start Track button 102 while theLens1 Select button 104 is pressed. This will return these settings tothe ones last read from the track file or to the default settings if atrack file is not found.

[0116] There is also a remote switch (not illustrated) which can be usedto activate the Start Track function. This function provides automaticcontrol of the Lens Systems and Focus Table based upon the recordscontained in the track file. The switch must be wired to connector P2.

[0117] The “CTRL_PAD.SYS” device driver provides the initialization,input, and output functions needed to operate the USB Game Pad 70. Thehardware portion of the interface is implemented on a CoreModule/P5ecomputer board with a compatible Universal Host Controller Interface(UHCI). Due to the operational nature of the UHCI interface and theCardWare device drivers needed for a PCMCIA interface, a device driveris required for the USB interface.

[0118] When the CardWare device drivers are loaded the operating systemconfiguration is changed from Real Mode to Virtual-Real Mode. As aresult, real physical memory address locations required by the UHCIcannot be determined within the operating software. The UHCIinitialization software must execute before the CardWare device driversare loaded and hence must also be a device driver.

[0119] Initialization of the USB interface for USB game pad 70 isaccomplished in three steps. The first step allocates and locates memoryfor control transfers and data transfers on the USB bus. The second stepinitializes the Universal Host Controller Interface. The third stepdetects the USB Game Pad and performs the enumeration process for theUSB game pad 70.

[0120] Referring to FIGS. 1 and 6, memory must be allocated andinitialized for a Frame Pointer List, a Transfer Descriptor, an InputData Buffer and an Output Data Buffer. The Frame Pointer List 130consists of 1024 structured 32-bit pointers that are used by theUniversal Host Controller Interface 120 to locate the TransferDescriptors that describe the USB frames 132 (FIG. 6). This list resideson a real physical 4096-byte memory boundary and its real physicallocation is saved for the UHCI initialization. The Schedule 134 willsequence through one Frame Pointer every millisecond.

[0121] One out of every sixteen Frame Pointers is initialized to pointto the real physical location of the one Transfer Descriptor (TD11)needed for the interface. The remaining Frame Pointers are initializedwith the terminate bit (T) set which causes no operation performed. Thisresults in a maximum polling rate of once every 16 milliseconds for USBGame Pad transfers.

[0122] Data transfers between the USB interface 122 within game pad 70and the USB host controller 124 occur over the 12 foot game pad cableand the 15 foot extension cable 126. The USB interface 122 is connectedto registers 128 within game pad 70. These registers 128 are for thevarious functions controlled by the game pad 70 which are implementedvia the game pad buttons and joysticks illustrated in FIG. 3 and 4.

[0123] A Transfer Descriptor consists of four 32-bit words that describethe type of transfer and point to the real physical location of the dataand data buffers as well as the next Transfer Descriptor needed for thetransfer. Only one Transfer Descriptor was needed to implement theinterface with the USB Game Pad 70. This Transfer Descriptor isdynamically configured to perform both the initialization and the datatransfers.

[0124] Separate data buffers 136 are allocated to accommodate themaximum size of an input or output data transfer. The real physicallocation of this allocated memory is saved and used to dynamicallyconfigure the Transfer Descriptor during operation. The Universal HostController Interface initialization consists of the following steps:

[0125] 1) Determine the existence of the UHCI on a PCI bus.

[0126] 2) Retrieve the I/O address of the UHCI.

[0127] 3) Enable the UHCI.

[0128] 4) Initialize the UHCI registers.

[0129] 5) Test for and attempt a connection with the USB Game Pad.

[0130] When the USB Game Pad is detected the remaining initialization ofthe UHCI and the USB enumeration process are performed as follows:

[0131] 1) Remaining UHCI initialization

[0132] a) Clear the port Status/Control Register

[0133] b) Reset the port

[0134] c) Enable the port

[0135] d) Set the Frame Number Register to zero (first frame).

[0136] e) Command the interface to run

[0137] 2) USB Enumeration

[0138] a) Control Transfer to request Device Descriptor (initially inDefault State)

[0139] b) Control Transfer to receive Device Descriptor data

[0140] c) Control Transfer to request Device Status (abort DeviceDescriptor)

[0141] d) Control Transfer to receive Device Status

[0142] e) Control Transfer to set USB Device Address

[0143] f) Control Transfer to receive Device Address Confirmation (nowin Address State)

[0144] g) Control Transfer to request Device Descriptor

[0145] f) Control Transfer to receive Device Descriptor

[0146] h) Control Transfer to request Device Configuration Descriptor

[0147] i) Control Transfer to receive Device Configuration Descriptor

[0148] j) Control Transfer to set Device Configuration Descriptor

[0149] k) Control Transfer to receive Device Configuration Confirmation(Configured State)

[0150] l) Control Transfer to request Device Configuration Value

[0151] m) Control Transfer to receive Device Configuration Value

[0152] If a connection with the USB Game Pad 70 is not established(above step 5) or if the enumeration process fails for some reasonanother attempt will be attempted when the Auto Focus and ZoomController 20 program tries to read data from the USB Game Pad 70.

[0153] Referring to FIGS. 1, 7A-7D and 8, there is a shown in FIGS.7A-7D the main computer software program 140 flow chart (lensctlr.exeflow chart) for controller 20. Upon power up the program begins at main() (program step 142) then proceeds to the initialization subroutine ofFIG. 8 (program step 144).

[0154] During the initialization subroutine of FIG. 8, the controller 20will attempt to locate the track file on PC Memory Card 42 (program step228). If the track file is found, controller 20 will set the lenses tothe initial settings as indicated in the file (program step 230).

[0155] If the track file is not found, controller 20 will set the lensesto focus at infinity with their widest field-of-view and greatest f-stop(program step 232).

[0156] The focus function for the focus tables 30 and 32 are initializedduring program steps 216 and 218, the focus, zoom and iris functions forlens system 34 are initialized during program steps 220 and 222, and thefocus zoom and iris functions for lens system 38 are initialized duringprogram steps 224 and 226.

[0157] During program step 214 error flags are cleared, LED indicatorlight 62 is cleared and the PC memory card 42 is located.

[0158] Program step 234 provides an error message for display if nooptical systems are attached to Auto Focus and Zoom Controller 20.

[0159] Initialization of overlays occurs during program step 236 and inaddition to an update on the initialization status. The software thenexits the initialization subroutine (program step 238) and returns tothe main program which is illustrated in FIGS. 7A-7D.

[0160] During program step 146, the software checks the initializationof the control pad which is generally game pad 70 but may be switch pad100. If the initialization failed it is tried again in program step 150.Otherwise in step 148 the control pad data is read.

[0161] The Start Track button 84 on USB Game Pad 70 (program step 152)is checked to start the automatic control of the Lens Systems 34 and 38and Focus Tables 30 and 32 based upon the records contained in the trackfile. The active track flag is tested during program step 154 whichindicates whether the Start Track button 84 on USB Game Pad 70 (programstep 152) was pressed. If the Start Track button 84 was not pressed theremaining track file functions are skipped.

[0162] When the Stop Track button 86 on USB Game Pad 70 is pressed thetrack file control will pause keeping the lens control functions and thedisplayed time set to the values contained in the last record read fromthe track file. Pressing the Start Track button 84 continues automaticcontrol.

[0163] The Reset Track button 88 is tested (program step 158), ifpressed the software proceeds to program step 162 to restart automaticcontrol of the Lens Systems 34 and 38 and Focus Tables 30 and 32. Ifautomatic control had been paused, pressing the Reset Track button 88will reset the pointers in the track file to the first record in thefile and maintain the pause until activated with the Start Track button84.

[0164] The computer software program proceeds to program steps 164 totest the initialization of the focus tables 30 and 32. If initializedduring program step 166, the software computes the focus table focus anda focus table update occurs during program step 168.

[0165] During program step 170, the software test the initialization oflens system 34. If initialized, Lens system 34 values are computedduring program step 172 including focus, focal length and iris values orsettings. During program step 174, an update for the focus, focal lengthand iris functions are generated for Lens system 34.

[0166] For lens system 38, program steps 176, 178 and 180 operate in anidentical manner as program steps 170, 172 and 174 operate with respectto lens system 34.

[0167] During program step 182, the Toggle Overlay button 92 ismonitored by the software. When an operator presses the Toggle Overlaybutton 92 and the Clear Offsets button 90 is not pressed (program step184) the computer software will sequence the video overlays from whiteto black to no overlay (program steps 186 and 188) and back to whiteagain. The function gives the operator the capability to set the overlayfor the best viewing against the background in real time.

[0168] When an operator presses the Toggle Overlay and the Clear Offsetsbutton 90 (program step 184), and the Reset Track button 86 is notpressed (program step 190) the software clears the offsets input by theoperator. The Lens Systems and Focus Table settings will then revertback to the values indicated in the track file.

[0169] Program step 192 of the computer software program closes the gamepad or switch pad function which allows the program to re-initializethat function in the initialization subroutine of FIG. 8 (program step194). Pressing the Reset Track button 88 in addition to the ToggleOverlay button 92 and the Reset Track button 86 (program step 190)reboots the entire Auto Focus and Zoom Controller system by invoking thewarm boot program (warmboot.com) in the root directory (program step195).

[0170] During program step 196 an overlay update occurs. During programstep 198 an error display update occurs. During program step 200 thesystem indicators, i.e. LEDs 62, 64 and 66 are updated.

[0171] During program step 202 the control pad output (game padvibration) function is called to provide the operator with sensoryfeedback, based upon the status of the Limit Flag, which indicates thata limit in one of the lens functions (Focus, Focus Length or Irissettings) is reached. Program step 204 resets the Limit Flag to no.

[0172] Referring to FIGS. 1, 9A and 9B, device driver software wasdeveloped to allow for communications between the game bad 70 and autofocus and zoom controller 20. The software was developed to becompatible with Intel's Universal Host Controller Interface (UHCI). TheUniversal Host Controller Interface is one of the three primarystandards (Universal, Open and Enhanced Host Controller Interface) for aUniversal Serial Bus (USB) which is the communications bus forcontroller 20. UHCI defines how a USB controller talks to a hostcomputer and its operating system which for controller 20 is MS-DOS.Game pad 70 is a USB peripheral designed to connect to a UniversalSerial Bus.

[0173] Program step 252 (FIG. 9A) of Device Driver Flow Chart 250establishes a header 252 for the device driver software. Header 252contains the following: (1) a link to the next device driver, (2) adevice driver attribute word, (3) a strategy routine entry point, (4) adriver interrupt routine entry point, and (5) a logic device name whichcomprises eight characters. The header is compatible with MS-DOS devicedriver standards.

[0174] The flow chart for the strategy routine is illustrated in FIG. 9Bin program steps 254, 256 and 258. The strategy routine establishes aheader pointer (program step 256) which points to the address of therequest header. During program step 258, the strategy routine returns toDOS.

[0175] Referring to FIGS. 1, 9A, 9B, 10A and 10B, the device drivercomputer software next enters the Interrupt routine (program step 260).The entry point for the Interrupt routine was established in programstep 252. The Interrupt routine consist get the Command Code from therequest header (program step 262), and then use the Command Code as anoffset in the dispatch table (program step 264). The Command Coderepresents commands used in the device driver software including read,write, reset and initialize. The Command Code is an offset into theDispatch Table which next points to the appropriate routine to implementthe command.

[0176] Program step 266 implements the dispatch command call which callsthe routine to implement the read, the write or the initialize routineswithin the device driver software.

[0177] Program steps 268-282 of the Interrupt routine perform thefunction of calling the routine identified in the pointer from theDispatch Table. The Read Command is called in program step 272 and theinitialize command is called in program step 280. The write command isnot currently supported by the device drive software (program step 276).Provisions are also made within the interrupt routine for miscellaneouscommands requiring an OK response (program step 268) and unknowncommands which sets the response to error (program step 270).

[0178] The Interrupt routine first calls the initialize routine, i.e.Call PadInit (program step 280). Program step 282 sets aside memory fordata within the RAM for Auto Focus and Zoom Controller 20. The End ofUsed Memory is put in the Device Driver Header in program step 282,reserving memory for the device driver in RAM.

[0179] The PadInit routine of FIG. 11 displays an identification message(program step 286) on a computer monitor. A computer monitor isconnected only during testing. Both the switch pad and game padinterfaces are then initialized by calling the SwitchPadInit routine(program step 288) and USB_GamePadInit routine (program step 290)respectively.

[0180] The SwitchPadInit routine (program step 294, FIG. 12) is used todetermine whether a local switch pad or a remote switch pad is connectedto the Auto Focus and Zoom Controller 20 by examining a pair of bits, alocal bit and a remote bit. Whenever the device driver softwaredetermines that the local bit is active (program step 296), the softwareregisters a local switch pad is attached (program step 300) and proceedsto set status to OK (program step 302). The local switch pad is definedin the software as switch pad 100 which is illustrated in FIG. 5.

[0181] Whenever the device driver software determines that the remotebit is active (program step 298), the software registers a remote switchpad is attached (program step 304) and proceeds to set status to OK(program step 302). The remote switch pad is defined in the software asa switch pad 100 which is used to only initiate the start trackfunction.

[0182] Whenever the device driver software determines that there is nota switch pad attached to controller 20, the software registers no switchpad is attached (program step 306) and proceeds to set status to OK(program step 302).

[0183] Referring to FIGS. 1, 13 and 14, the USB_GamePadInit routine(program step 308) first must determine whether controller 20 isoperating in real mode or in virtual real mode. Real mode means that anaddress in the program is a physical address in memory. Virtual realmode means that the address in the program is not a physical address inmemory, but a virtual representation of the physical address in memorywhich is translated by the computer system which is controller 20.

[0184] The device drivers for the PCMCIA memory card 42 withincontroller 20 establish virtual real mode as the mode of operation. Thisnecessitates the use of device driver software which operates in virtualreal mode to implement the game pad through the Universal Serial Bus(program step 310). A routine is also provided that returns the realphysical address in memory whenever there is a need for this memoryaddress.

[0185] After the device driver software determines the operating mode(program step 310), the software determines whether a PCI BIOS issupported (program step 312). Since the USB controllers reside on thePCI bus, and functions need to be implemented via the PCI bus, the PCIBIOS must be supported, otherwise the software program step 314 willreturn an error message.

[0186] When the PCI BIOS is supported the UHCI_MemoryPtrInit routine iscalled (program step 316) and the software proceeds to the flow chartillustrated in FIG. 14. Program step 330 is the beginning of theUHCI_MemoryPtrInit routine.

[0187] During program step 332 the physical location of the end of codein the RAM memory is established. Program step 334 establishes thephysical location of the frame list within the RAM memory. The framelist is required for USB access and comprises a list of 1024 pointersfor each of the 1024 different frames. The frame list is requiredwhenever a peripheral such as the USB game pad 70 is communicating witha computer via the universal serial bus. The physical location of theframe list (which requires 4K of RAM memory) follows the end of code.

[0188] The frame buffer (program step 336) follows the frame list, Theinput buffer (program step 338) follows the frame list, the outputbuffer (program step 340) follows the input buffer and the end of memoryused by the device driver follows the output buffer (program step 342).

[0189] The allocation of RAM memory and the initialization for the framepointer list, the input data buffer and the output data buffer aredepicted in FIG. 6 of the drawings.

[0190] The memory allocation illustrated in the Flow Chart of FIG. 14was designed for simplicity and to minimize the use of memory space inRAM.

[0191] When the allocation of memory is complete (program step 343), thesoftware returns to the flow chart of FIG. 13 indicating that theallocation was performed (program step 318). The software next entersthe UHCI_MemoryInit (program step 326). When the device drivers fails toinitialize, the software returns an error (program step 324) indicatingthe device driver failed to initialize.

[0192] When the UHCI_MemoryInit routine is complete the software returnsto program step 322 indicating initialization was OK and proceeds toprogram step 326. When an error occurs in the UHCI_MemoryInit routine,the software returns an error (program step 324) indicating the devicedriver failed to initialize.

[0193] Referring to FIGS. 1, 13 and 15, when the software proceeds tothe UHCI_MemoryInit routine (program step 344), the software establishesthe contents of the frame list. The frame pointers, which are 32 bits,are pointers which point to a frame buffer to implement a protocol or aframe transaction. Each frame comprises one or more transfer descriptors(FIG. 6) to implement the transaction for the frame.

[0194] The UHCI controller (depicted as controller 124 in FIG. 6)accesses a frame pointer once every millisecond requiring that thetransaction to be completed within the one millisecond time period.Program step 346 sets only one of every sixteen frame pointers to pointto the Frame Buffer. USB game pad 70 is a slow operating device whichrequires at least one millisecond to complete a transaction. Theremaining frame pointers are set to terminate by setting the leastsignificant bit of the frame pointer to a one. When the leastsignificant bit of the frame pointer is set to zero, the frame pointerwill point to a frame.

[0195] The frame pointers that are active (least significant bit set tozero) point to only one buffer (program step 348). This buffer has fourthirty two bit words consisting of a LinkPointer, a PacketToken, aBufferPointer and a ControlStatus. The LinkPointer is set to TERMINATE,the PacketToken is set to IN_TOKEN (initial condition) forinitialization only and changes subsequent thereto, the Buffer Pointeris set to the physical address of the input buffer and the ControlStatusis set initially to no data length. The LinkPointer 32-bit word remainsthe same after being initialized by the software, while the PacketTokenBuffer Pointer and ControlStatus 32-bit words change afterinitialization by the software.

[0196] The software next clears the input buffer (program step 350), theoutput buffer (program step 352) and returns an OK (program step 354)returning to the USB_GamePadInit routine.

[0197] Referring to FIGS. 1, 13 and 16, during program step 326, thecomputer software calls the UHCI_ControllerInit routine (program step356). The UHCI Controller 124 (FIG. 6) controls the dialog on theUniversal Serial Bus. The software then calls a routine UHCI_CtlrDetect(program step 358) to detect the presence of controller 124. Ifcontroller 124 is not present or there is a failure to locate USBsupport within controller 20, a return error is indicated (program step362). There are also other controller types such as the OHCI and EHCIcontrollers which would result in the return error provided by programstep 362.

[0198] Whenever the UHCI controller 124 is detected and supported bycontroller 20, the software proceeds to program step 364 and callsUHCI_CtlrIO_Address routine which determines the I/O address for thecontroller 124 on the PCI bus. This address is a variable address whichcould change every time the controller 20 powers up.

[0199] The UHCI_CtlrEnable routine enables controller 124 (program step366), the UHCI_CtlrRegInit routine is called (program step 368), and theUSB_DevConnect routine is called to determine if there is a USB deviceconnected to controller 20 (program step 370).

[0200] During program step 358, a PCI BIOS command is issued and thecontroller type is returned and then a test is performed to determine ifthe controller is a UHCI controller 124. Similarly, during program step364 a PCI BIOS command is issued which results in a return of thephysical I/O location. During program step 366 a PCI BIOS command isissued to the controller 124 to enable controller 124.

[0201] Referring to FIGS. 1, 6, 16 and 17, during program step 368 thesoftware enters the UHCI_CtrlRegInit routine 374 illustrated in FIG. 17.Program step 376 commands controller 124 to stop and clear the configuresemaphore flag. Program step 378 disables the legacy emulation which arecommands issued to allow the user to access a mouse and key board.Program step 380 disables interrupts, program step 382 performs a globalreset in controller 124, and program step 384 initializes frame listpointer which is a register in controller 124. The frame list pointerinitializes to the physical address location of the frame list in RAMwhich is the mechanism by which controller 124 determines the locationof the frame list and its 1024 frame pointers.

[0202] Program step 386 sets the frame number to zero setting a registerwithin controller 124 to zero. This register counts from 0 to 1024.

[0203] Program step 388 calls a USB_SetInt routine which is a routine toprocess interrupts issued by controller 124. Program step 390 disablesthis routine since the interrupts are not being used by the software.

[0204] Program step 392 provides for a delay to allow for the completionof program steps 382, 384, 386 and 388. Program step 394 returns to theflow chart of FIG. 16.

[0205] Referring to FIGS. 1, 6, 16 and 18, the software enters theUSB_DevConnect routine during program step 396 which determines whethergame pad 70 is connected to the Auto Focus and Zoom Controller 20.Program step 398 gets a connection status from a status register withinUSB controller 124. Whenever there is no connection of game pad 70 tothe controller 20, a check is made to determine whether there is achange from the previous test for the connection status of game pad 70(program step 402). When there is no change in status, i.e. the previoustest indicated the game pad 70 was not connected to controller 20, thesoftware proceeds to program 406 returning to the software illustratedin FIG. 16. When there is a change in status, i.e. the previous testindicated the game pad 70 was connected to controller 20, the softwareproceeds to program step 404 changing the status register to indicate ano connection status for game pad 70 before to returning to the flowchart illustrated in FIG. 16.

[0206] When there is a connection (program step 400) either to port zeroor port one (USB1 or USB2 on panel 60, FIG. 2), and there is no changein status the software proceeds to program step 406.

[0207] When there is a connection (program step 400) either to port zeroor port one (USB1 or USB2 on panel 60, FIG. 2), and there is a change instatus (the previous test did not detect a connection for the game pad70) the software proceeds to program step 410.

[0208] Program step 410 clears the port status of port zero or port one,program step 412 resets the port, which is either port zero or port oneand program step 414 enables the port, which is either port zero or portone. The frame number is set equal zero during program step 418, whichis identical to program step 386 which also sets the frame number tozero.

[0209] The program step 418 test is to determine if port one or port twois enabled depending on which port game pad 70 is connected to. Ifneither port is enabled, an error message is returned (program step420). When the port having game pad 70 connected to it is enabled,program step 422 commands UHCI controller 124 to run activating theinterface between controller 124 and USB bus 126.

[0210] Program step 424 calls an enumeration routine USB_Enumerationwhich is specific to the USB bus. It comprises a set of request andtransactions that are implemented across the USB bus to allow forcommunications with a USB device which is game pad 20. Whenever anenumeration is implemented the software proceeds from program step 426to program step 428 to register a connection of the USB device (programstep 428) and return an OK (program step 406). Whenever an enumerationdoes not occur the software returns an error (program step 420).

[0211] Referring to FIGS. 1, 6, 16, 18 and 19, program step 430 beginsthe USB_Enumeration routine which was called by program step 424 of FIG.18. Program step 432 requests the device descriptor for the USB game pad70, followed by a command to receive the device descriptor. Program step436 requests the device status for the USB game pad 70, followed by acommand to receive the device status. The device address for game pad 70is set during program step 440. The device address for game pad 70 isconfirmed during program step 442 using a null data packet input havinga data size of zero.

[0212] The device descriptor for game pad 70 is again requested (programstep 444), followed by a command to read the device descriptor (programstep 446). The first request is to determine the size in bytes for atransaction on the USB bus for game pad 70, which is eight-bytes ofeight bit words. The second request is to read the entire devicedescriptor.

[0213] During program step 448, the software requests the configurationdescriptor, which is the configuration for game pad 70. Program step 450issues a command to receive the configuration descriptor for the USBgame pad 70.

[0214] Program step 452 sets the device configuration to configurationone which is the only configuration for game pad 70. Configuration oneis confirmed by using a null data packet input.

[0215] Program step 456 requests the configuration value followed by acommand to receive the configuration value (program step 458) and areturn status (program step 460).

[0216] Referring to FIGS. 1, 10A, 10B, 18, 20, 21, the main program forAuto Focus and Zoom Controller 20 includes a routine which has theLogical Device Name of the device driver and also issues a file opencommand. The file open command establishes communications with thedevice driver.

[0217] The software enters the interrupt routine (program step 260) andissues a read command which calls the PadRead routine (program step272). The PadRead routine is entered via program step 478 (FIG. 21).During program step 480, the software calls the GamePadInput routine(program step 462) which is illustrated in FIG. 20. Program step 464calls the USB_DeviceConnect Routine of FIG. 18 to determine if the USBGame Pad 70 is connected to controller 20. When there is a connection,i.e. the USB Game Pad 70 is connected to controller 20 (program step482). the status that is returned is the result of the GamePadInputroutine.

[0218] When the USB game pad 70 is not connected to the Auto Focus andZoom Controller 20, the software proceeds to program step 486 whichcalls the SwitchPadInput routine (program step 486). During normaloperation either the switch pad 100 or the game pad 70 will be connectedto auto focus and zoom controller 20. Program step 488 will return astatus which indicates a connection of the switch pad 100 (program step488).

[0219] The GamePadInput routine (program step 462) calls theUSB_DeviceConnect routine illustrated in FIG. 18 to determine if the USBGame Pad 70 is connected to controller 20 (program step 464). When thegame pad 70 is not connected to controller 20 a return status indicatingno connection occurs (program step 468). When the USB game pad 70 isconnected to the controller 20, the software calls the USB_DataInroutine (program step 470). Data is then transferred from the USB gamepad 70 to the input buffer which is one of the buffers 136 illustratedin FIG. 6. Program step 474 indicates that USB game pad 70 is being usedto control the focus, zoom and other functions of Auto Focus and ZoomController 20. When a remote bit and a local bit are both set the gamepad is in use, when the local bit is set the switch pad is in use andwhen the remote bit is set a remote switch is in use. A return statusoccurs during program step 476.

[0220] Referring to FIGS. 20, 22 and 23, the USB_DataIn routine (programstep 490) which is called from the GamePadInput routine invokes aUSB_Transaction routine, which includes an input token, a device addressand a pointer to the input buffer. The size of the input buffer is setto the amount of data expected from the USB Game Pad 70.

[0221] Program step 498 gets the status of the last transaction. Anegative acknowledge (program step 466) results in a return OK (programstep 502). A negative acknowledge indicates that the USB game pad 70 isbusy and has not yet acknowledged the last command. When there is nonegative acknowledge, a transaction is set up by placing the input tokenand the device address in the appropriate memory location in the framebuffer.

[0222] Program step 506 toggles a data bit which is locate in thePacketToken. The data bit, which is a validation bit to the UHCIcontroller 124, needs to change polarity between each transaction, i.e.the data bit changes from 1 to 0 or 0 to 1 prior to each transaction.Program step 508 calls the TestTransaction routine illustrated in FIG.24.

[0223] When there is a fatal error, connection status is changed to a noconnection status (program step 514) for game pad 70 and the status isreturned (program step 516). This allows the software to re-establishthe game pad connection. When there is not a fatal error, a return OKoccurs (program step 512).

[0224] Referring to FIGS. 20, 22, 23 and 24, the TestTransaction Routine(program step 518) checks to see if ControlStatus is active and as longas it is active a loop will occur (program step 520). When ControlStatustransitions to NOT_ACTIVE the transaction has been processed. Programstep 522 checks an error bit in the ControlStatus word. If an error isdetected, the software proceeds to program step 526. When an error isnot detected a return OK occurs (program step 524).

[0225] Whenever an error is detected, the software determines the errortype. When the error detected is STALLED, the error is fatal. A stallederror indicates that the USB game pad 70 did not respond to the lastcommand and no response is provided by the USB game pad 70.

[0226] Whenever a not stalled condition occurs, a register is set up toindicate the actual status for the game pad transaction. During programstep 530, the software “ANDs” the status register USB_STATUS_REG withthree bits (S_HC_HALTED+S_CONTROLLER_ERROR+S_SYSTEM_ERROR as depicted inFIG. 24, program step 530). If any of the three bits are set than afatal error occurs and Return FATAL_ERROR occurs (program step 536). Forexample, if the UHCI controller 124 enters into a halt state then thetransaction failed and a fatal error is returned. Similarly, when thereis an internal error within the UHCI controller, the transaction failsand a fatal error is returned. Finally, whenever there is a system errora fatal error is returned.

[0227] Whenever ax=0, that is the three bits are zero, then an OK isreturned (program steps 532 and 534).

[0228] Data input occurs when the USB Game Pad 70 is in the ConfiguredState with a data transfer input from End Point 1. Eight bytes of inputdata are received by the controller 20 and represent the followinginformation: Byte 1 (count representing 8 bytes): 01 Byte 2 (button byte#1): Button #8-button #1 Byte 3 (button byte #2): Button #13-button #9

[0229] Byte 4 (directional pad position)

[0230] Byte 5 (left joystick, left to right position)

[0231] Byte 6 (left joystick, top to bottom position)

[0232] Byte 7 (right joystick, left to right position)

[0233] Byte 8 (right joystick, top to bottom position)

[0234] From the foregoing, it may readily be seen that the presentinvention comprises a new, unique and exceedingly useful cameracontroller which controls camera functions in order to obtain optimalrecordings of launch events at a test range which constitutes aconsiderable improvement over the known prior art. Many modificationsand variations of the present invention are possible in light of theabove teachings. It is to be understood that within the scope of theappended claims the invention may be practiced otherwise than asspecifically described.

What is claimed is:
 1. A method for obtaining optimal recordings oflaunch events of an airborne vehicle at a test range, comprising thesteps of: (a) tracking a launch and test flight of said airborne vehiclealong a flight path for said airborne vehicle utilizing first and secondcameras to track the launch and test flight of said airborne vehiclewherein each of said first and second cameras has a lens; (b) generatingvideo flight data of the launch and test flight of said airborne vehiclealong the flight path for said airborne vehicle, said first and secondcameras generating said video flight data; (c) providing said videoflight data to a first video monitor and recorder and a second videomonitor and recorder; (d) displaying the launch and test flight of saidairborne vehicle along the flight path for said airborne vehicle on saidfirst video monitor and recorder and said second video monitor andrecorder; (e) recording the launch and test flight of said airbornevehicle and the flight path for said airborne vehicle on said firstvideo monitor and recorder and said second video monitor and recorder;(f) storing flight path information which identifies the flight path forsaid airborne vehicle on a memory card wherein an auto focus and zoomcontroller includes a memory card, and a computer software program; (g)controlling focus, zoom and iris settings for the lens of said firstcamera and the lens of said second camera during the launch and testflight of said airborne vehicle along the flight path of said airbornevehicle when said first camera and said second camera are tracking saidairborne vehicle; and (h) handling and interpreting said flight pathinformation stored on said memory card enabling operation of said AutoFocus and Zoom Controller allowing said Auto Focus and Zoom Controllerto automatically control the focus, zoom and iris settings for the lensof said first camera and the lens of said second camera during thelaunch and test flight of said airborne vehicle along the flight pathfor said airborne vehicle, wherein said computer software handles andinterprets said flight path information stored on said memory card. 2.The method of claim 1 further comprising the step of allowing anoperator to manually control the focus, zoom and iris settings for thelens of said first camera and the lens of said second camera during thelaunch and test flight of said airborne vehicle.
 3. The method of claim2 wherein said Auto Focus and Zoom Controller includes a UniversalSerial Bus which connects said Auto Focus and Zoom Controller to a USBgame pad allowing said operator to manually control the focus, zoom andiris settings for the lens of said first camera and the lens of saidsecond camera during the launch and test flight of said airbornevehicle.
 4. The method of claim 1 further comprising the step ofallowing an operator to manually control a display of a video overlaywhich appears on said first video monitor and recorder and said secondvideo monitor and recorder, said video overlay including video dataidentifying the focus, zoom and iris settings for the lens of said firstcamera and the lens of said second camera.
 5. The method of claim 4wherein said Auto Focus and Zoom Controller has a USB game pad, said USBgame pad having a toggle overlay button which when activated allows saidoperator to manually control the display of said video overlay.
 6. Amethod for obtaining optimal recordings of launch events of an airbornevehicle at a test range, comprising the steps of: (a) tracking a launchand test flight of said airborne vehicle along a flight path for saidairborne vehicle utilizing first and second cameras to track the launchand test flight of said airborne vehicle wherein each of said first andsecond cameras has a lens; (b) generating video flight data of thelaunch and test flight of said airborne vehicle along the flight pathfor said airborne vehicle, said first and second cameras generating saidvideo flight data; (c) providing said video flight data to a first videomonitor and recorder and a second video monitor and recorder; (d)displaying the launch and test flight of said airborne vehicle along theflight path for said airborne vehicle on said first video monitor andrecorder and said second video monitor and recorder; (e) recording thelaunch and test flight of said airborne vehicle and the flight path forsaid airborne vehicle on said first video monitor and recorder and saidsecond video monitor and recorder; (f) storing flight path informationwhich identifies the flight path for said airborne vehicle on a memorycard wherein an auto focus and zoom controller includes a memory card, aUniversal Serial Bus and a computer software program; (g) controllingfocus, zoom and iris settings for the lens of said first camera and thelens of said second camera during the launch and test flight of saidairborne vehicle along the flight path of said airborne vehicle whensaid first camera and said second camera are tracking said airbornevehicle; (h) handling and interpreting said flight path informationstored on said memory card enabling operation of said Auto Focus andZoom Controller allowing said Auto Focus and Zoom Controller toautomatically control the focus, zoom and iris settings for the lens ofsaid first camera and the lens of said second camera during the launchand test flight of said airborne vehicle along the flight path for saidairborne vehicle, wherein said computer software handles and interpretssaid flight path information stored on said memory card; (i) allowing anoperator to manually control the focus, zoom and iris settings for thelens of said first camera and the lens of said second camera during thelaunch and test flight of said airborne vehicle wherein said operatorutilizes a Universal Serial Bus (USB) game pad connected to theUniversal Serial Bus of said Auto Focus and Zoom Controller to manuallycontrol the focus, zoom and iris settings for the lens of said firstcamera and the lens of said second camera; and (j) enablingcommunications between the Universal Serial Bus of said Auto Focus andZoom Controller and said USB game pad in accordance with bus standardsand data communication protocols for a Universal Host ControllerInterface included within the Universal Serial Bus of said Auto Focusand Zoom Controller.
 7. The method of claim 6 further comprising thestep of allowing said operator to manually control a display of a videooverlay which appears on said first video monitor and recorder and saidsecond video monitor and recorder, said video overlay including videodata identifying the focus, zoom and iris settings for the lens of saidfirst camera and the lens of said second camera.
 8. The method of claim7 wherein said USB game pad has a toggle overlay button which whenactivated allows said operator to manually control the display of saidvideo overlay.
 9. The method of claim 6 wherein said USB game pad has afocus joystick, a zoom joystick and an iris directional pad, said focusjoystick allowing said operator to manually adjust said focus settingsfor the lens of said first camera and the lens of said second camera,said zoom joystick allowing said operator to manually adjust said irissettings for the lens of said first camera and the lens of said secondcamera, and said iris directional pad allowing said operator to manuallyadjust said iris settings for the lens of said first camera and the lensof said second camera.
 10. The method of claim 9 wherein said USB gamepad has a lens one select switch and a lens two select switch, said lensone select switch when activated allowing said operator to manuallyadjust said focus, zoom and iris settings for the lens of said firstcamera by selectively activating said focus joystick, said zoom joystickand said iris directional pad, and said lens two select switch whenactivated allowing said operator to manually adjust said focus, zoom andiris settings for the lens of said second camera by selectivelyactivating said focus joystick, said zoom joystick and said irisdirectional pad.
 11. The method of claim 6 wherein said focus, zoom, andiris settings for the lens of said first camera and the lens of saidsecond camera are contained in a track file stored on said memory card,said focus, zoom and lens settings being preset in said track file forthe flight path of said airborne vehicle which allows said operator tomonitor said airborne vehicle without manually adjusting said focus,zoom and iris settings as said airborne vehicle travels along saidflight path.
 12. The method of claim 11 wherein said USB game pad has astart track button to activate said track file and a stop track buttonto de-activate said track file.
 13. The method of claim 6 wherein saidAuto Focus and Zoom Controller has a front panel, the front panel ofsaid Auto Focus and Zoom Controller having first, second and third lightemitting diodes mounted on said front panel, said first, second andthird light emitting diodes indicating system status for said Auto Focusand Zoom Controller, said first, second and third light emitting diodesproviding a visual indication of adjustments to said focus and zoomsettings for the lens of said first camera and the lens of said secondcamera.
 14. A method for obtaining optimal recordings of launch eventsof an airborne vehicle at a test range, comprising the steps of: (a)tracking a launch and test flight of said airborne vehicle along aflight path for said airborne vehicle utilizing first and second camerasto track the launch and test flight of said airborne vehicle whereineach of said first and second cameras has a lens; (b) generating videoflight data of the launch and test flight of said airborne vehicle alongthe flight path for said airborne vehicle, said first and second camerasgenerating said video flight data; (c) providing said video flight datato a first video monitor and recorder and a second video monitor andrecorder; (d) displaying the launch and test flight of said airbornevehicle along the flight path for said airborne vehicle on said firstvideo monitor and recorder and said second video monitor and recorder;(e) recording the launch and test flight of said airborne vehicle andthe flight path for said airborne vehicle on said first video monitorand recorder and said second video monitor and recorder; (f) storingflight path information which identifies the flight path for saidairborne vehicle on a memory card wherein an auto focus and zoomcontroller includes a memory card, a Universal Serial Bus and a computersoftware program; (g) controlling focus, zoom and iris settings for thelens of said first camera and the lens of said second camera during thelaunch and test flight of said airborne vehicle along the flight path ofsaid airborne vehicle when said first camera and said second camera aretracking said airborne vehicle; (h) handling and interpreting saidflight path information stored on said memory card enabling operation ofsaid Auto Focus and Zoom Controller allowing said Auto Focus and ZoomController to automatically control the focus, zoom and iris settingsfor the lens of said first camera and the lens of said second cameraduring the launch and test flight of said airborne vehicle along theflight path for said airborne vehicle, wherein said computer softwarehandles and interprets said flight path information stored on saidmemory card; (i) allowing an operator to manually control the focus,zoom and iris settings for the lens of said first camera and the lens ofsaid second camera during the launch and test flight of said airbornevehicle wherein said operator utilizes a Universal Serial Bus (USB) gamepad connected to the Universal Serial Bus of said Auto Focus and ZoomController to manually control the focus, zoom and iris settings for thelens of said first camera and the lens of said second camera; (j)enabling communications between the Universal Serial Bus of said AutoFocus and Zoom Controller and said USB game pad in accordance with busstandards and data communication protocols for a Universal HostController Interface included within the Universal Serial Bus of saidAuto Focus and Zoom Controller wherein said Auto Focus and ZoomController includes device software which enables communications betweenthe Universal Serial Bus of said Auto Focus and Zoom Controller and saidUSB game pad; and (k) allowing said operator to manually control adisplay of a video overlay which appears on said first video monitor andrecorder and said second video monitor and recorder, said video overlayincluding video data identifying the focus, zoom and iris settings forthe lens of said first camera and the lens of said second camera whereinsaid USB game pad has a toggle overlay button which when activatedallows said operator to manually control the display of said videooverlay.
 15. The method of claim 14 wherein said USB game pad has afocus joystick, a zoom joystick and an iris directional pad, said focusjoystick allowing said operator to manually adjust said focus settingsfor the lens of said first camera and the lens of said second camera,said zoom joystick allowing said operator to manually adjust said irissettings for the lens of said first camera and the lens of said secondcamera, and said iris directional pad allowing said operator to manuallyadjust said iris settings for the lens of said first camera and the lensof said second camera.
 16. The method of claim 15 wherein said USB gamepad has a lens one select switch and a lens two select switch, said lensone select switch when activated allowing said operator to manuallyadjust said focus, zoom and iris settings for the lens of said firstcamera by selectively activating said focus joystick, said zoom joystickand said iris directional pad, and said lens two select switch whenactivated allowing said operator to manually adjust said focus, zoom andiris settings for the lens of said second camera by selectivelyactivating said focus joystick, said zoom joystick and said irisdirectional pad.
 17. The method of claim 14 wherein said focus, zoom,and iris settings for the lens of said first camera and the lens of saidsecond camera are contained in a track file stored on said memory card,said focus, zoom and lens settings being preset in said track file forthe flight path of said airborne vehicle which allows said operator tomonitor said airborne vehicle without manually adjusting said focus,zoom and iris settings as said airborne vehicle travels along saidflight path.
 18. The method of claim 17 wherein said USB game pad has astart track button to activate said track file and a stop track buttonto de-activate said track file.
 19. The method of claim 14 wherein saidAuto Focus and Zoom Controller has a front panel, the front panel ofsaid Auto Focus and Zoom Controller having first, second and third lightemitting diodes mounted on said front panel, said first, second andthird light emitting diodes indicating system status for said Auto Focusand Zoom Controller, said first, second and third light emitting diodesproviding a visual indication of adjustments to said focus and zoomsettings for the lens of said first camera and the lens of said secondcamera.
 20. The method of claim 14 further comprising a focus tablecomputer connected to said Auto Focus and Zoom Controller; a first focustable connected to said focus table computer; a second focus tableconnected to said focus table computer, wherein the computer softwareprogram for said Auto Focus and Zoom Controller controls operation ofsaid focus table computer, said first focus table and said second focustable; said USB game pad having a focus table select switch which whenactivated allows said operator to manually control focus distancesettings for said first focus table and said second focus table; andsaid USB game pad having a reset track button which when activatedrestarts automatic control by said computer software program of thefocus distance settings for said first focus table and said second focustable.